/******************************************************************************* * Copyright (c) 2002, 2013 Object Factory Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Object Factory Inc. - Initial implementation * IBM Corporation - fix for Bug 40951 *******************************************************************************/ package org.eclipse.ant.internal.ui.dtd; import java.util.Map; /** * IElement interface. * * @author Bob Foster */ public interface IElement extends IAtom { /** * @return true if the element has been referenced in a schema but is not yet defined. */ public boolean isUndefined(); /** * @return true if element model is <code>"(#PCDATA)"</code>. */ public boolean isText(); /** * @return true if element model is EMPTY. */ public boolean isEmpty(); /** * @return true if element model is ANY. */ public boolean isAny(); /** * @return the element's content model. The content model will be empty if <code>isText()</code>, <code>isAny()</code> or <code>isEmpty()</code>. * Note that the content model deals with child elements only; use <code>isMixed()</code> to see if text is also allowed. */ public IModel getContentModel(); /** * @return the DFM corresponding to the content model. Every element has a DFM. */ public IDfm getDfm(); /** * @return Map with attribute qname keys and IAttr values. If element has no attributes, the map is empty. Map must not be modified by caller; for * performance reasons, it is not a copy. */ public Map<String, IAttribute> getAttributes(); }